package cn.edu.sgu.www.mhxysy.service.role;

import cn.edu.sgu.www.mhxysy.dto.role.RoleConfigSchemaDTO;
import cn.edu.sgu.www.mhxysy.dto.role.RoleConfigSchemaSaveDTO;
import cn.edu.sgu.www.mhxysy.entity.role.RoleConfigSchema;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * @author 沐雨橙风ιε
 * @version 1.0
 */
public interface RoleConfigSchemaService {

    /**
     * 保存角色配置方案
     * @param roleConfigSchemaSaveDTO 角色配置方案信息
     */
    @Transactional(rollbackFor = Exception.class)
    void save(RoleConfigSchemaSaveDTO roleConfigSchemaSaveDTO);

    /**
     * 添加角色配置方案
     * @param roleConfigSchemaDTO 角色配置方案信息
     */
    void insert(RoleConfigSchemaDTO roleConfigSchemaDTO);

    /**
     * 通过ID修改方案名称
     * @param id 角色配置方案ID
     * @param name 方案名称
     */
    void updateNameById(Integer id, String name);

    /**
     * 通过角色ID查询角色开启的配置方案
     * @param roleId 角色ID
     * @return List<RoleConfigSchema>
     */
    RoleConfigSchema selectOpenSchema(String roleId);

    /**
     * 通过角色ID查询角色配置方案列表
     * @param roleId 角色ID
     * @return List<RoleConfigSchema>
     */
    List<RoleConfigSchema> selectByRoleId(String roleId);
}